home *** CD-ROM | disk | FTP | other *** search
/ Windows News 2005 November / WNnov2005.iso / Windows / Equipement / hMailServer / hMailServer-4.1-Build-136.exe / {app} / PHPWebAdmin / include / minixml / classes / treecomp.inc.php < prev   
PHP Script  |  2004-10-24  |  5KB  |  164 lines

  1. <?php
  2.  
  3. /***************************************************************************************************
  4. ****************************************************************************************************
  5. *****
  6. *****      MiniXML - PHP class library for generating and parsing XML.
  7. *****
  8. *****      Copyright (C) 2002,2003 Patrick Deegan, Psychogenic.com
  9. *****      All rights reserved.
  10. *****
  11. *****      http://minixml.psychogenic.com
  12. *****
  13. *****   This program is free software; you can redistribute
  14. *****   it and/or modify it under the terms of the GNU
  15. *****   General Public License as published by the Free
  16. *****   Software Foundation; either version 2 of the
  17. *****   License, or (at your option) any later version.
  18. *****
  19. *****   This program is distributed in the hope that it will
  20. *****   be useful, but WITHOUT ANY WARRANTY; without even
  21. *****   the implied warranty of MERCHANTABILITY or FITNESS
  22. *****   FOR A PARTICULAR PURPOSE.  See the GNU General
  23. *****   Public License for more details.
  24. *****
  25. *****   You should have received a copy of the GNU General
  26. *****   Public License along with this program; if not,
  27. *****   write to the Free Software Foundation, Inc., 675
  28. *****   Mass Ave, Cambridge, MA 02139, USA.
  29. *****
  30. *****
  31. *****   You may contact the author, Pat Deegan, through the
  32. *****   contact section at http://www.psychogenic.com
  33. *****
  34. *****   Much more information on using this API can be found on the
  35. *****   official MiniXML website - http://minixml.psychogenic.com
  36. *****    or within the Perl version (XML::Mini) available through CPAN
  37. *****
  38. ****************************************************************************************************
  39. ***************************************************************************************************/
  40.  
  41.  
  42.  
  43. /***************************************************************************************************
  44. ****************************************************************************************************
  45. *****
  46. *****                      MiniXMLTreeComponent
  47. *****
  48. ****************************************************************************************************
  49. ***************************************************************************************************/
  50.  
  51.  
  52.  
  53. /* MiniXMLTreeComponent class
  54. ** This class is only to be used as a base class
  55. ** for others.
  56. **
  57. ** It presents the minimal interface we can expect
  58. ** from any component in the XML hierarchy.
  59. **
  60. ** All methods of this base class
  61. ** simply return NULL except a little default functionality
  62. ** included in the parent() method.
  63. **
  64. ** Warning: This class is not to be instatiated.
  65. ** Derive and override.
  66. **
  67. */
  68.  
  69. class MiniXMLTreeComponent {
  70.  
  71.     var $xparent;
  72.  
  73.     /*  MiniXMLTreeComponent
  74.     ** Constructor.  Creates a new MiniXMLTreeComponent object.
  75.     **
  76.     */
  77.     function MiniXMLTreeComponent ()
  78.     {
  79.         $this->xparent = NULL;
  80.     } /* end MiniXMLTreeComponent constructor */
  81.  
  82.  
  83.     /* Get set function for the element name
  84.     */
  85.     function name ($setTo=NULL)
  86.     {
  87.         return NULL;
  88.     }
  89.  
  90.     /* Function to fetch an element */
  91.     function & getElement ($name)
  92.     {
  93.         return NULL;
  94.     }
  95.  
  96.     /* Function that returns the value of this
  97.     component and its children */
  98.     function getValue ()
  99.     {
  100.         return NULL;
  101.     }
  102.  
  103.     /* parent NEWPARENT
  104.     **
  105.     ** The parent() method is used to get/set the element's parent.
  106.     **
  107.     ** If the NEWPARENT parameter is passed, sets the parent to NEWPARENT
  108.     ** (NEWPARENT must be an instance of a class derived from MiniXMLTreeComponent)
  109.     **
  110.     ** Returns a reference to the parent MiniXMLTreeComponent if set, NULL otherwise.
  111.     */
  112.     function &parent (&$setParent)
  113.     {
  114.         if (! is_null($setParent))
  115.         {
  116.             /* Parents can only be MiniXMLElement objects */
  117.             if (! method_exists($setParent, 'MiniXMLTreeComponent'))
  118.             {
  119.                 return _MiniXMLError("MiniXMLTreeComponent::parent(): Must pass an instance derived from "
  120.                             . "MiniXMLTreeComponent to set.");
  121.             }
  122.             $this->xparent = $setParent;
  123.         }
  124.  
  125.         return $this->xparent;
  126.  
  127.  
  128.     }
  129.  
  130.     /* Return a stringified version of the XML representing
  131.     this component and all sub-components */
  132.     function toString ($depth=0)
  133.     {
  134.         return NULL;
  135.     }
  136.  
  137.     /* dump
  138.     ** Debugging aid, dump returns a nicely formatted dump of the current structure of the
  139.     ** MiniXMLTreeComponent-derived object.
  140.     */
  141.     function dump ()
  142.     {
  143.         return var_dump($this);
  144.     }
  145.  
  146.     /* helper class that everybody loves */
  147.     function _spaceStr ($numSpaces)
  148.     {
  149.         $retStr = '';
  150.         if ($numSpaces < 0)
  151.         {
  152.             return $retStr;
  153.         }
  154.  
  155.         for($i = 0; $i < $numSpaces; $i++)
  156.         {
  157.             $retStr .= ' ';
  158.         }
  159.         
  160.         return $retStr;
  161.     }
  162.     
  163. } /* end class definition */
  164. ?>